COMPX201-21A (HAM)

Data Structures and Algorithms

15 Points

Edit Header Content
Division of Health Engineering Computing & Science
School of Computing and Mathematical Sciences
Department of Computer Science

Staff

Edit Staff Content

Convenor(s)

Lecturer(s)

Administrator(s)

: rachael.foote@waikato.ac.nz

Placement/WIL Coordinator(s)

Tutor(s)

Student Representative(s)

Lab Technician(s)

Librarian(s)

: alistair.lamb@waikato.ac.nz

You can contact staff by:

  • Calling +64 7 838 4466 select option 1, then enter the extension.
  • Extensions starting with 4, 5, 9 or 3 can also be direct dialled:
    • For extensions starting with 4: dial +64 7 838 extension.
    • For extensions starting with 5: dial +64 7 858 extension.
    • For extensions starting with 9: dial +64 7 837 extension.
    • For extensions starting with 3: dial +64 7 2620 + the last 3 digits of the extension e.g. 3123 = +64 7 262 0123.
Edit Staff Content

Paper Description

Edit Paper Description Content

An introduction to abstract data types and dynamic data structures, with an introduction to the theory and practice of testing. This paper assumes familiarity with basic object-oriented programming as introduced within COMPX101 and COMPX102 (COMP103 and COMP104 prior to 2017), and introduces programming with data structures using Java and the use of testing as a key concept in software development. Students learn how to program in Java and become familiar with the design, analysis, and application of commonly used data structures, including sets, lists, stacks, queues, trees, and hash-tables.

Edit Paper Description Content

Paper Structure

Edit Paper Structure Content
Course material is presented through three lectures each week, and an additional tutorial session is available once a week for students to get extra help. Assessment is through four programming assignments and two tests. The tests are administered in-class; the first at roughly mid-trimester and the second in place of the last lecture of the trimester.
Edit Paper Structure Content

Learning Outcomes

Edit Learning Outcomes Content

Students who successfully complete the paper should be able to:

  • Data structures

    At the end of this course, the successful student will have learned how to implement basic dynamic data structures. They will specifically have a practical understanding of sets, lists, trees, and hashtables; as well as other common stat structures. This includes the ability to implement them, use them to solve problems, and understand issues pertaining to their computational complexity (e.g. time and space characteristics).

    Linked to the following assessments:
  • Testing
    At the end of this paper a student should be able to write unit tests.
    Linked to the following assessments:
Edit Learning Outcomes Content
Edit Learning Outcomes Content

Assessment

Edit Assessments Content

Assessment items are as follows:

  • Four programming assignments @ 15% each
  • Two tests @ 20% each
Edit Additional Assessment Information Content

Assessment Components

Edit Assessments Content

The internal assessment/exam ratio (as stated in the University Calendar) is 100:0. There is no final exam. The final exam makes up 0% of the overall mark.

The internal assessment/exam ratio (as stated in the University Calendar) is 100:0 or 0:0, whichever is more favourable for the student. The final exam makes up either 0% or 0% of the overall mark.

Component DescriptionDue Date TimePercentage of overall markSubmission MethodCompulsory
1. Assignment 1
15
  • Online: Submit through Moodle
2. Assignment 2
15
  • Online: Submit through Moodle
3. Test 1
20
  • In Class: In Lecture
4. Assignment 3
15
  • Online: Submit through Moodle
5. Assignment 4
15
  • Online: Submit through Moodle
6. Test 2
20
  • In Class: In Lecture
Assessment Total:     100    
Failing to complete a compulsory assessment component of a paper will result in an IC grade
Edit Assessments Content

Required and Recommended Readings

Edit Required Readings Content

Required Readings

Edit Required Readings Content
No required reading, but students are encouraged to seek supporting material as per the recommended reading given below.
Edit Required Readings Content

Recommended Readings

Edit Recommended Readings Content

Just about any textbook or online resource covering data structures using Java will be helpful.

The following textbook was previously required for this course, and is now highly recommended:

Data Structures & Problem Solving Using Java (4th Ed.), Mark Allen Weiss, Pearson Education (Addison-Wesley) 2010.

Edit Recommended Readings Content

Online Support

Edit Online Support Content
The course Moodle page will provide supporting information.
Edit Online Support Content

Workload

Edit Workload Content

This is a fifteen point course, and the expected workload for the semester is 150 hours accordingly.

In addition to working on assignments, students should endeavour to practice programming every day to reinforce what is taught during lectures. The best way to learn the material in this course is by coding, coding, coding!

Edit Workload Content

Linkages to Other Papers

Edit Linkages Content

Prerequisite(s)

Prerequisite papers: COMPX102

Corequisite(s)

Equivalent(s)

Restriction(s)

Restricted papers: COMPX241

Edit Linkages Content